DuoでAWSとSumo Logicに2段階認証でシングルサインオンしてみた
まいど、大阪の市田です。
以下の記事でご紹介した「Duo Security」について、今回はAWSと他のサービスに対するシングルサインオンを試してみたいと思います。
SSOの確認
今回は「Sumo Logic」を検証の対象として、前回のAWSの場合と同じようにActive Directoryのユーザ情報でアクセスできることを確認してみたいと思います。
概要
- Sumo Logicのトライアルアカウントの作成
- Duo Access Gatewayの設定
- Sumo Logicの設定
- Duoの設定
- Duo Access Gatewayへアプリケーション保護の追加
- SSOの確認
構成
構成は以前のものを引き続き利用するので、前回からの変更点はありません。
やってみた
それでは早速試してみたいと思います。手順としては、下記のドキュメントに沿って行います。
Duo Protection for Sumo Logic: Duo Security
Sumo Logicのアカウント作成
Sumo Logicは有料サービスですが、30日間フリーのトライアルアカウントが提供されていますので、まずはアカウントを作成しましょう。
具体的な作成方法は下記を参考にして下さい。
Duo Access Gatewayの設定
まずはDuo Access Gateway側で設定を行います。
今回もActive Directoryを利用しますが、Sumo LogicのSSOに必要な属性はMail属性です。この属性は既に設定済みなので、特に作業は不要です。設定されていなければ設定しておきましょう。
次にSumo Logicに登録する為のトークン署名の証明書をダウンロードします。既にAWSとの連携時にダウンロード済みであれば不要です。
Duo Access Gatewayの画面で「Applications」をクリックします。
Applicationsの画面にある「Metadata」の欄から「Download certificate」をクリックしてdag.crt
というファイルをダウンロードしてください。
その下側にある各URLを手元に控えておきます。この後、Sumo Logic側にこのURLを入力します。
Sumo Logicの設定
作成したアカウントでSumo Logicにサインインして下さい。
セットアップウィザードは左上のボタンをクリックしてスキップします。
画面上部のメニューから「Manage」をクリックします。
下記は従来のUIですが、横の「Try the New UI」をクリックするとデザインが変わります。どちらでも直感的に操作できるので好みに合わせて選んで下さい。
「Manage」から「Security」をクリックします。
画面の右上にある「SAML」をクリックして下さい。他はとりあえずデフォルトのままで構いません。
次の画面では下記の内容で設定します。
設定項目 | 設定内容 | 説明 |
---|---|---|
Configuration Name | Duo_Acceess_Gateway | 適当な名前をつけて下さい |
Issuer | 「Entity ID」のURL | Duo Access Gatewayで確認した「Entity ID」のURLです。 |
Authn Request URL | 「SSO URL」のURL | Duo Access Gatewayで確認した「SSO URL」のURLです。 |
X.509 Certificate | 「dag.crt」の内容 | Duo Access Gatewayからダウンロードしたトークン署名の証明書の内容をコピペします。 |
On Demand Provisioning(Optional) | チェックを入れる | - |
On Demand Provisioning Roles | Administrator | 要件に応じたRole名を指定して下さい。(下記「Role設定の補足」項目を参照) |
Logout Page(Optional) | チェックを入れて「Logout URL」のURLを入力 | Duo Access Gatewayで確認した「SSO URL」のURLです。 |
保存すると元の画面に戻るので、再度「SAML」をクリックして下さい。
次の画面の「Authentication Request」と「Assertion Consumer」のURLを控えておきます。終わったら「X」をクリックして閉じて下さい。
Role設定の補足
先程、Sumo Logic側でSAML2.0の設定を行った時に「On Demand Provisioning Roles」を設定しました。
これは、AWSのIAM Roleに似たもので、「ここで指定したRoleでSumo Logicにログインする」という指定になります。
デフォルトでは「Administrator」と「Analyst」という2つのRoleが用意されています。確認するには下記のように管理画面から「Roles」をクリックすると開くことが出来ます。
必要に応じてRoleを追加し、SAMLの設定に指定して下さい。今回は検証の為に「Administrator」を指定しました。
また、この設定が無いと、どのRoleでログインするのか指定が無いため下記のようなエラーになります。
Duoの設定
次はDuo管理画面上での設定です。(Duo Access Gatewayではないことに注意して下さい。)
管理画面から「Applications」をクリックして、「Protect an Application」をクリックします。
検索窓で「sumologic」で検索して、Sumo Logicが出たら「Protect this Application」をクリックして下さい。
次の画面で、先程Sumo Logicで控えておいた「Authentication Request」と「Assertion Consumer」のURLを入力して保存します。
保存できると、コンフィグファイル(jsonファイル)のリンクが現れるので、ダウンロードしておきましょう。
Duo Access Gatewayへ保護アプリケーション追加
先程ダウンロードしたコンフィグファイルをDuo Access Gatewayにアップロードして、保護対象のサービスを追加します。
アップロードできると下記のようにSumo Logicが追加されて、SSO用のURLが生成されます。
設定作業は以上です。
SSOの確認
では、最初にAWSにサインインしてみます。
URLは先程のDuo Access GatewayにあったAWS用の「Login URL」です。初回はADに登録しているユーザ情報を入力します。
前回同様にDuoのモバイルアプリ宛にプッシュ通知を送ります。
モバイルアプリに来たリクエストをタップします。こちらも前回の記事の通りです。
承認してAWSにサインインします。
AWSにサインイン出来ました。
同様に、Sumo LogicのSSO用URLにアクセスして、モバイルアプリでリクエストを承認します。今回はADのユーザ情報の入力がありません。
モバイルアプリの認証だけでSumo Logicにもアクセスすることが出来ました。
最後に
Duoを使うと複数のサービスに対してSSOでアクセスすることが出来ました。
事前準備としてDuo Access GatewayやAD FSなどを用意する必要がありますが、基盤となる環境を作ってしまえば色んなサービスを簡単に追加できるのは便利だなと感じました。